package com.jn.principle.liskov.improve;

/**
 * 里氏替换原则
 *
 * @author 江南大学1033190417
 * @date 2022/4/9 23:30
 */
public class LisKov {
    public static void main(String[] args) {
        System.out.println(new B().func1(1, 3));
    }
}

//创建一个更加基础的基类
class Base {
    //把更加基础的成员和方法写到基类中

}

//A类
class A extends Base {

    public int func1(int num1, int num2) {
        return num1 - num2;
    }
}

//B类
class B extends Base {

    //如果B需要使用A类，可以使用组合的关系
    private A a = new A();

    public int func1(int num1, int num2) {
        return num1 + num2;
    }

    public int func2(int a, int b) {
        return func1(a, b) + 9;
    }

    public int func3(int a, int b) {
        return this.a.func1(a, b) + 7;
    }
}